// emName  名字  验证中文名称
function isEmName(name) {
    var pattern = /^[\u4E00-\u9FA5]{1,6}$/;
    return pattern.test(name);
}

// emTel  电话号码
function isEmTel(phone) {
    var pattern1 = /^1[34578]\d{9}$/;
    var pattern2 = /\d{3}-\d{8}|\d{4}-\d{7}/;
    if (pattern1.test(phone) || pattern2.test(phone)) {
        return true;
    }
    return false;
}

// loginName  登录名  英文+数字
function isLoginName(loginName) {
    var pattern = /^[a-zA-Z][a-zA-Z0-9]*$/;
    return pattern.test(loginName);
}

// password  密码
function checkPassword(password) {
    var pattern = /^([0-9]|[a-zA-Z]){6,16}$/;
    return pattern.test(password);
}

// emWage  工资   正则表达式验证double类型的数
function isEmWage(emWage) {
    var pattern = /^(([1-9][0-9]*)|((([1-9][0-9]*)|0)\.[0-9]{1,2}))$/;
    return pattern.test(emWage);
}

// emage;  年龄
function isEmAge(emage) {
    var pattern = /^(?:[1-9]?\d|100)$/;
    return pattern.test(emage);
}

// 证件类型
function isdocumentType1(documentType) {
    var pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    return pattern.test(documentType);
}

function isdocumentType2(documentType) {
    var pattern = /^[a-zA-Z]{5,17}$/;
    return pattern.test(documentType);
}

/****************  员工表单验证函数  **********************/

function empFormValidate() {

    var result = '';

    // 判断头像
    if ($.trim($('.strPhoto').val()).length == 0) {
        result += 'fail';
        $('.tipemPhoto').html("* 头像不能为空！").css("color", "red");
    } else {
        $('.tipemPhoto').html("√").css("color", "green");
    }
    // 判断姓名
    if ($.trim($('.emName').val()).length == 0) {
        result += 'fail';
        $('.tipemName').html("* 名字不能为空！").css("color", "red");
    } else {
        if (isEmName($.trim($('.emName').val())) == false) {
            result += 'fail';
            $('.tipemName').html("* 名字不合法！").css("color", "red");
        } else {
            // 验证通过
            $('.tipemName').html("√").css("color", "green");
        }
    }
    // 出生日期
    if ($.trim($('.embirthday').val()).length == 0) {
        result += 'fail';
        $('.tipembirthday').html("* 请选择出生日期！").css("color", "red");
    } else {
        $('.tipembirthday').html("√").css("color", "green");
    }
    // 判断年龄
    if ($.trim($('.emage').val()).length == 0) {
        result += 'fail';
        $('.tipemage').html("* 请选择出生日期！").css("color", "red");
    } else {
        $('.tipemage').html("√").css("color", "green");
    }
    // 入职日期
    if ($.trim($('.entryDate').val()).length == 0) {
        result += 'fail';
        $('.tipentryDate').html("* 请选择入职日期！").css("color", "red");
    } else {
        $('.tipentryDate').html("√").css("color", "green");
    }
    // 判断电话
    if ($.trim($('.emTel').val()).length == 0) {
        result += 'fail';
        $('.tipemTel').html("* 电话不能为空！").css("color", "red");
    } else {
        if (isEmTel($.trim($('.emTel').val())) == false) {
            result += 'fail';
            $('.tipemTel').html("* 电话不合法！").css("color", "red");
        } else {
            $('.tipemTel').html("√").css("color", "green");
        }
    }
    // 判断密码
    if ($.trim($('.password').val()).length == 0) {
        result += 'fail';
        $('.tippassword').html("* 密码不能为空！").css("color", "red");
    } else {
        if (checkPassword($.trim($('.password').val())) == false) {
            result += 'fail';
            $('.tippassword').html("* 密码格式错误！").css("color", "red");
        } else {
            // 验证通过
            $('.tippassword').html("√").css("color", "green");
        }
    }
    // 判断密码1
    if ($.trim($('.password').val()) != $.trim($('.password1').val())) {
        result += 'fail';
        $('.tippassword1').html("* 两次输入密码不一致！").css("color", "red");
    } else {
        $('.tippassword1').html("√").css("color", "green");
    }
    // 判断工资
    if ($.trim($('.emWage').val()).length == 0) {
        result += 'fail';
        $('.tipemWage').html("* 工资不能为空！").css("color", "red");
    } else {
        if (isEmWage($.trim($('.emWage').val())) == false) {
            result += 'fail';
            $('.tipemWage').html("* 格式错误！").css("color", "red");
        } else {
            // 验证通过
            $('.tipemWage').html("√").css("color", "green");
        }
    }
    // 证件编号isdocumentType1
    if ($.trim($('.documentNo').val()).length != 0) {
        if (isdocumentType1($.trim($('.documentNo').val())) || isdocumentType2($.trim($('.documentNo').val()))) {
            $('.tipdocumentNo').html("√").css("color", "green");
        } else {
            result += 'fail';
            $('.tipdocumentNo').html("* 输入格式错误！").css("color", "red");
        }
    }

    // 全部判断通过
    if (result == '') {
        return true;
    }
    return false;
}

// 点击更新时，增加验证
function check() {

    var result = '';

    // 判断登录名
    if ($.trim($('.loginName').val()).length != 0) {
        if (isLoginName($.trim($('.loginName').val())) == true || isEmTel($.trim($('.loginName').val())) == true) {
            $('.tiploginName').html("√").css("color", "green");
        } else {
            result += 'fail';
            $('.tiploginName').html("* 登录名格式错误！").css("color", "red");
        }
    }


    // 判断员工类型是否选择
    if ($('.emTypeId').val() == "null") {
        result += 'fail';
        $('.tipemTypeId').html("* 员工类型为选择！").css("color", "red");
    } else {
        // 验证通过
        $('.tipemTypeId').html("√").css("color", "green");
    }

    // 全部判断通过
    if (result == '') {
        return true;
    }
    return false;
}

// 添加员工时，检测电话号码是否已注册
function isNoEmtel(emTel) {
    console.log("isNoEmtel:" + emTel);
    var result = false;
    $.ajax({
        type: "GET",
        url: "/employeeController/findOneEmployee?emTel=" + emTel,
        dataType: "json",
        async: false,
        success: function (data) {
            console.log("isNoEmtel:" + data);
            if (data.emp == null) {
                result = true;
            }
        },
        error: function () {
            alert("号码是否已存在请求失败！");
        }
    });
    return result;
}

// 修改员工时，检测电话号码是否已注册或就是未修改的号码
function updateNoEmtel(emId, emTel) {
    var result = false;
    $.ajax({
        type: "GET",
        url: "/employeeController/findOneEmployee?emTel=" + emTel,
        dataType: "json",
        async: false,
        success: function (data) {
            console.log("updateNoEmtel:" + data.emp);
            // 判断电话号码是否已注册，或者号码并没有修改
            if (data.emp == null || data.emp.emId == emId) {
                result = true;
            }
        },
        error: function () {
            alert("号码是否已存在请求失败！");
        }
    });
    return result;
}

// 登录名是否已存在
function testLoginName(emId, loginName) {
    var result = false;
    if (loginName != null) {
        $.ajax({
            type: "GET",
            url: "/employeeController/findOneEmployee?loginName=" + loginName,
            dataType: "json",
            async: false,
            success: function (data) {
                if (data.emp == null) {
                    result = true;
                } else {
                    if (data.emp.emId == emId) {
                        result = true;
                    }
                }
            },
            error: function () {
                alert("号码是否已存在请求失败！");
            }
        });
    }
    return result;
}

// 点击刷新网页
$('.clearForm').on('click', function () {
    window.location.reload();
});

// 点击新增按钮，隐藏或显示部分输入框，
function showAndHide() {
    $(".showAndHide").hide();
    $("#updateSubmitBtn").hide();
    showEmpolyeeType(null);
}

// 获得员工类型并设置选中
function showEmpolyeeType(defaultTypeid) {
    console.log("showEmpolyeeType");
    console.log(defaultTypeid);
    $(".emTypeId").empty();
    $.ajax({
        type: "POST",
        url: "/employeeController/findEmployeeType",
        success: function (data) {
            console.log(data);
            for (var i = 0; i < data.employeeTypeList.length; i++) {
                if (defaultTypeid != null && data.employeeTypeList[i].emTypeId == defaultTypeid) {
                    $(".emTypeId").append("<option value=" + data.employeeTypeList[i].emTypeId + " selected>" + data.employeeTypeList[i].typeInstruct + "</option>");
                } else {
                    $(".emTypeId").append("<option value=" + data.employeeTypeList[i].emTypeId + ">" + data.employeeTypeList[i].typeInstruct + "</option>");
                }
            }
        }
    });
}

// 获得分店列表并设置选中
function showbranchesList(defaultbranId) {
    $(".branchesId").empty();
    $.ajax({
        type: "POST",
        url: "/employeeController/findBranches",
        success: function (data) {
            console.log(data);
            for (var i = 0; i < data.branchesList.length; i++) {
                if (defaultbranId != null && data.branchesList[i].branId == defaultbranId) {
                    $(".branchesId").append("<option value=" + data.branchesList[i].branId + " selected>" + data.branchesList[i].branName + "</option>");
                } else {
                    $(".branchesId").append("<option value=" + data.branchesList[i].branId + ">" + data.branchesList[i].branName + "</option>");
                }
            }
        }
    });
}

// 上传头像并回显
$(".addEmPhoto").bind('change', function () {
    var fordate = new FormData();  // 得到一个FormData对象：
    var fils = $(".addEmPhoto").get(0).files[0];  // 得到file对象
    fordate.append('pic', fils);  // 用append方法添加键值对
    var result = uploadfile('addEmPhoto'); // 上传头像并返回结果
    if (result.code == 0) {
        $(".imagePhoto").attr({'src': result.data}); // 把图片回显
        $(".strPhoto").val(result.data); // 将路径存入不显示的文本框中
        $('.tipemPhoto').html("√").css("color", "green");
    } else {
        alert("上传头像失败，请重新上传！");
    }
});

// 计算年龄并显示
function countEmage() {
    var birth = parseInt($(".embirthday").val().substring(0, 4));
    var date = new Date();
    var year = date.getFullYear();
    var age = year - birth;
    if (age < 0 || age > 100) {
        $(".tipembirthday").html("* 出生日期不合法！").css("color", "red");
    } else {
        $(".tipembirthday").html("√").css("color", "green");
        $(".emage").val(age);
    }
}

// // 时间戳转换成日期格式
// function timeStampToDate(timeStamp) {
//     if (timeStamp == null) {
//         return null;
//     } else {
//         var date = new Date(timeStamp);
//         Y = date.getFullYear() + '-';
//         M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
//         D = (date.getDate() + 1 < 10 ? '0' + (date.getDate()) : date.getDate());
//         // h = date.getHours() + ':';
//         // m = date.getMinutes() + ':';
//         // s = date.getSeconds();
//         return Y + M + D;
//     }
// }

// 当修改电话号码时，动态修改登录名
$(".emTel").on("change", function () {
    $(".loginName").val($(this).val());
});

// 添加员工
$('#addSubmitBtn').on('click', function () {
    var temp = $("#addEmpForm :not('input[name='departureDate']')").serialize();
    console.log("-----");
    console.log(temp);
    if (confirm("确定添加员工信息？")) {
        if (empFormValidate()) {
            var emTel = $.trim($('.emTel').val());
            if (isNoEmtel(emTel)) {

                $.ajax({
                    type: "POST",
                    url: "/employeeController/addEmployee",
                    dataType: "json",
                    data: $("#addEmpForm :not('input[name='departureDate']')").serialize(),
                    success: function (data) {
                        if (data.result == "success") {
                            alert("添加成功！");
                            window.location.reload();
                        } else {
                            alert("添加失败！");
                        }
                    },
                    error: function () {
                        alert("发送添加员工请求失败！");
                    }
                });
            } else {
                $('.tipemTel').html("* 该号码已注册").css("color", "red");
                alert("提交失败，请检查红色提示部分！");
            }
        } else {
            alert("提交失败，请检查红色提示部分！");
        }
    }
});

// 获得员工信息
function editEmpFun(emId) {
    $("#addSubmitBtn").hide();
    if (!$.AMUI.support.mutationobserver) {
        $selected.trigger('changed.selected.amui');
    }
    $.ajax({
        type: "GET",
        url: "/employeeController/findOneEmployee?emId=" + emId,
        dataType: "json",
        success: function (data) {
            // 唯一标识（用于保存修改的时候的id）
            $(".emId").val(data.emp.emId);
            // 头像
            $(".imagePhoto").attr("src", data.emp.emPhoto);
            $(".strPhoto").val(data.emp.emPhoto);
            // 工号
            $(".emNo").val(data.emp.emNo);
            // 姓名
            $(".emName").val(data.emp.emName);
            // 性别
            if (data.emp.emsex == 1) {
                $(".emsex:eq(0)").attr("checked", "checked");
            } else {
                $(".emsex:eq(1)").attr("checked", "checked");
            }
            // 年龄
            $(".emage").val(data.emp.emage);
            // 员工岗位id
            showEmpolyeeType(data.emp.emTypeId);
            // 分店id
            showbranchesList(data.emp.branchesId);
            // 状态
            if (data.emp.emState == 1) {
                $(".emState:eq(0)").attr("checked", "checked");
            } else {
                $(".emState:eq(1)").attr("checked", "checked");
            }
            // 出生日期
            $(".embirthday").datepicker('setValue', data.emp.embirthday);
            // 入职日期
            $(".entryDate").datepicker('setValue', data.emp.entryDate);
            // 离职日期
            if (data.emp.departureDate != null) {
                $(".departureDate").datepicker('setValue', data.emp.departureDate);
            }
            // 联系电话
            $(".emTel").val(data.emp.emTel);
            // 密码
            $(".password").val(data.emp.password);
            $(".password1").val(data.emp.password);
            // 工资
            $(".emWage").val(data.emp.emWage);
            // 登录名
            if (data.emp.loginName == '') {
                $(".loginName").val(data.emp.emTel);
            } else {
                $(".loginName").val(data.emp.loginName);
            }
            // 证件类型
            if (data.emp.documentType == "身份证") $(".documentType").selected('select', 0);
            if (data.emp.documentType == "护照") $(".documentType").selected('select', 1);
            if (data.emp.documentType == "其他") $(".documentType").selected('select', 2);
            // 证件编号
            $(".documentNo").val(data.emp.documentNo);
            // 住址
            $(".emAddress").val(data.emp.emAddress);
            // 备注
            $(".emNote").val(data.emp.emNote);
        },
        error: function () {
            alert("发送更新请求失败！");
        }
    });
}

// 更新员工信息
function updateEmpFun() {
    if (confirm("您确定更新当前员工的数据？")) {
        if (empFormValidate() && check()) {
            var emId = $.trim($('.emId').val());
            var emTel = $.trim($('.emTel').val());
            var loginName = $.trim($('.loginName').val());
            if (updateNoEmtel(emId, emTel)) {
                if (testLoginName(emId, loginName)) {
                    var dataForm = $("#addEmpForm");
                    if ($.trim($(".departureDate").val()).length == 0) {
                        dataForm = $("#addEmpForm :not('input[name='departureDate']')");
                    }
                    $.ajax({
                        type: "POST",
                        url: "/employeeController/updateEmployee",
                        dataType: "json",
                        data: dataForm.serialize(),
                        success: function (data) {
                            if (data.result == "success") {
                                alert("更新成功！");
                                window.location.reload();
                            } else {
                                alert("更新失败！");
                            }
                        },
                        error: function () {
                            alert("发送请求失败！");
                        }
                    });
                } else {
                    $('.tiploginName').html("* 登录名已注册或已被使用！").css("color", "red");
                    alert("更新失败，请检查红色提示部分！");
                }
            } else {
                $('.tipemTel').html("* 该号码已注册").css("color", "red");
                $('.tipeloginName').html("* 该号码已注册").css("color", "red");
                alert("更新失败，请检查红色提示部分！");
            }
        } else {
            alert("更新失败，请检查红色提示部分！");
        }
    }
}

// 删除员工信息
function delEmpFun(emId) {
    $("#delEmpConfirm").modal({
        onConfirm: function () {
            $.ajax({
                type: "GET",
                url: "/employeeController/deleteEmployee?emId=" + emId,
                dataType: "json",
                success: function (data) {
                    if (data.result == "success") {
                        alert("删除成功！");
                        window.location.reload();
                    } else {
                        alert("删除失败！");
                    }
                },
                error: function () {
                    alert("删除员工发送请求失败！");
                }
            });
        }
    });
}

// 点击头像
function showPhotoFun(emId) {
    if (emId != null) {
        $.ajax({
            type: "GET",
            url: "/employeeController/findOneEmployee?emId=" + emId,
            dataType: "json",
            success: function (data) {
                $(".imagePhoto").attr({'src': data.emp.emPhoto});
            },
            error: function () {
                alert("发送请求失败！");
            }
        });
    }
}

// 模糊查询
$("#searchBtn").on("click", function () {
    var type = $("#searchType").val();
    var content = $("#searchContent").val();
    if (content === null || content === undefined || content === '' || content.length === 0) {
        alert("请输入查询条件！");
        return false;
    } else {
        window.location.href = "/employeeController/searchEmployee?type=" + type + "&content=" + content;
    }
});
